package org.atlantis.grosbeak.depot;

/**
 * 对象构造器。创建一个用户所需的对象，并触发此对象的相关事件。
 * 
 * @author <a href="mailto:seenoevil.cn@gmail.com">SeeNoEvil</a>
 * 
 */
public interface ObjectWeaver {

	/**
	 * 构建一个对象。
	 * 
	 * @param maker
	 *            DepotMaker对象。
	 * @return 构建完毕的对象。
	 */
	Object weave(DepotMaker maker);

	/**
	 * 销毁一个对象。
	 */
	void destroy();
}
